﻿Imports DNP.GestionComercial.BE
Imports DNP.DevNetPeru.Data
Imports System.Data.SqlClient
Public Class RepresentanteDAL


    Public Function GuardarRepresentante(ByVal pObjeto As RepresentanteBE) As RespuestaBE

        Dim obeRespuesta As New RespuestaBE
        Dim omensaje As String
        Try

            Dim cmd As New SqlCommand("COM_INS_COM_REPRESENTANTE")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("p_NREP_CODIGO", SqlDbType.Int).Value = pObjeto.NREP_CODIGO
            cmd.Parameters.Add("p_NPRO_CODIGO", SqlDbType.Int).Value = pObjeto.NPRO_CODIGO
            cmd.Parameters.Add("p_CPER_TIPO_DOC", SqlDbType.Int).Value = pObjeto.CPER_TIPO_DOC
            cmd.Parameters.Add("p_CPER_DOCUMENTO", SqlDbType.VarChar).Value = pObjeto.CPER_DOCUMENTO
            cmd.Parameters.Add("p_CPER_NOMBRE", SqlDbType.VarChar).Value = pObjeto.CPER_NOMBRE
            cmd.Parameters.Add("p_CPER_APELLIDO", SqlDbType.VarChar).Value = pObjeto.CPER_APELLIDO
            cmd.Parameters.Add("p_CPER_TLFNO", SqlDbType.VarChar).Value = pObjeto.CPER_TLFNO
            cmd.Parameters.Add("p_CPER_TLFNO_CEL", SqlDbType.VarChar).Value = pObjeto.CPER_TLFNO_CEL
            cmd.Parameters.Add("p_CPER_EMAIL_01", SqlDbType.VarChar).Value = pObjeto.CPER_EMAIL_01
            cmd.Parameters.Add("p_CPER_EMAIL_02", SqlDbType.VarChar).Value = pObjeto.CPER_EMAIL_02
            cmd.Parameters.Add("p_CPER_UBIGEO", SqlDbType.VarChar).Value = pObjeto.CPER_UBIGEO
            cmd.Parameters.Add("p_CPER_DIRECCION", SqlDbType.VarChar).Value = pObjeto.CPER_DIRECCION
            cmd.Parameters.Add("p_CREP_ESTADO", SqlDbType.Char).Value = pObjeto.CREP_ESTADO
            'cmd.Parameters.Add("p_DAUDI_FEC_INS", SqlDbType.DateTime).Value = pObjeto.DAUDI_FEC_INS
            'cmd.Parameters.Add("p_CAUDI_USR_INS", SqlDbType.VarChar).Value = pObjeto.CAUDI_USR_INS



            cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output
            BaseDatos.Execute(cmd)

            omensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
            If omensaje.StartsWith("-1@") Then
                obeRespuesta.Respuesta = False
                obeRespuesta.Mensaje = omensaje.Split("@")(1)
            Else
                obeRespuesta.Respuesta = True
                obeRespuesta.Mensaje = omensaje
            End If


        Catch ex As Exception

            obeRespuesta.Respuesta = False
            obeRespuesta.Mensaje = ex.ToString

        End Try
        Return obeRespuesta
    End Function

    Public Function EliminarRepresentante(ByVal pObjeto As PARAMETROBE) As RespuestaBE

        Dim obeRespuesta As New RespuestaBE
        Dim omensaje As String
        Try

            Dim cmd As New SqlCommand("COM_DEL_COM_REPRESENTANTE")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("p_NREP_CODIGO", SqlDbType.Int).Value = pObjeto.PARAMETRO01
            cmd.Parameters.Add("p_USUARIO", SqlDbType.VarChar).Value = pObjeto.PARAMETRO02

            cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output
            BaseDatos.Execute(cmd)

            omensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
            If omensaje.StartsWith("-1@") Then
                obeRespuesta.Respuesta = False
                obeRespuesta.Mensaje = omensaje.Split("@")(1)
            Else
                obeRespuesta.Respuesta = True
                obeRespuesta.Mensaje = omensaje
            End If


        Catch ex As Exception

            obeRespuesta.Respuesta = False
            obeRespuesta.Mensaje = ex.ToString

        End Try
        Return obeRespuesta
    End Function

    Public Function listarRepresentante(ByVal pParametro As PARAMETROBE) As RespuestaBE
        Dim lstObjeto As New List(Of RepresentanteBE)
        Dim obeRespuesta As New RespuestaBE
        Dim obeentidad As New RepresentanteBE
        Dim dt As DataTable
        Try

            Dim cmd As New SqlCommand("COM_SEL_COM_REPRESENTANTE")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("p_BUSCAR", SqlDbType.VarChar).Value = pParametro.PARAMETRO01
            Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)

                dt = New DataTable()
                dt.Load(dr)

                obeRespuesta.ValorRertono = dt
                obeRespuesta.Respuesta = True

            End Using


        Catch ex As Exception
            obeRespuesta.ValorRertono = lstObjeto
            obeRespuesta.Respuesta = False


            obeRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return obeRespuesta
    End Function

    Public Function listarRepresentantexCodigo(ByVal pcodigo As String) As RespuestaBE
        Dim obeEntidad As New RepresentanteBE
        Dim obeRespuesta As New RespuestaBE
        Dim dt As DataTable
        Try

            Dim cmd As New SqlCommand("COM_SEL_COM_RepresentanteXCODIGO")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("p_CODIGO", SqlDbType.Int).Value = pcodigo
            Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                dt = New DataTable()
                dt.Load(dr)
                Dim i As Integer = 0
                While i < dt.Rows.Count

                    obeEntidad = LLenarEntidad(dt.Rows(i))
                    i = i + 1

                End While
                obeRespuesta.ValorRertono = obeEntidad
                obeRespuesta.Respuesta = True

            End Using


        Catch ex As Exception
            obeRespuesta.ValorRertono = obeEntidad
            obeRespuesta.Respuesta = False
            obeRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return obeRespuesta
    End Function

    Private Function LLenarEntidad(ByVal pdtrSource As System.Data.DataRow) As RepresentanteBE
        Dim abeResultado As New RepresentanteBE


        With abeResultado

            If pdtrSource.Table.Columns.Contains("NREP_CODIGO") Then If IsDBNull(pdtrSource("NREP_CODIGO")) Then .NREP_CODIGO = 0 Else .NREP_CODIGO = pdtrSource("NREP_CODIGO")
            If pdtrSource.Table.Columns.Contains("NPRO_CODIGO") Then If IsDBNull(pdtrSource("NPRO_CODIGO")) Then .NPRO_CODIGO = 0 Else .NPRO_CODIGO = pdtrSource("NPRO_CODIGO")
            If pdtrSource.Table.Columns.Contains("CPER_TIPO_DOC") Then If IsDBNull(pdtrSource("CPER_TIPO_DOC")) Then .CPER_TIPO_DOC = 0 Else .CPER_TIPO_DOC = pdtrSource("CPER_TIPO_DOC")
            If pdtrSource.Table.Columns.Contains("CPER_DOCUMENTO") Then If IsDBNull(pdtrSource("CPER_DOCUMENTO")) Then .CPER_DOCUMENTO = String.Empty Else .CPER_DOCUMENTO = pdtrSource("CPER_DOCUMENTO")
            If pdtrSource.Table.Columns.Contains("CPER_NOMBRE") Then If IsDBNull(pdtrSource("CPER_NOMBRE")) Then .CPER_NOMBRE = String.Empty Else .CPER_NOMBRE = pdtrSource("CPER_NOMBRE")
            If pdtrSource.Table.Columns.Contains("CPER_APELLIDO") Then If IsDBNull(pdtrSource("CPER_APELLIDO")) Then .CPER_APELLIDO = String.Empty Else .CPER_APELLIDO = pdtrSource("CPER_APELLIDO")
            If pdtrSource.Table.Columns.Contains("CPER_TLFNO") Then If IsDBNull(pdtrSource("CPER_TLFNO")) Then .CPER_TLFNO = String.Empty Else .CPER_TLFNO = pdtrSource("CPER_TLFNO")
            If pdtrSource.Table.Columns.Contains("CPER_TLFNO_CEL") Then If IsDBNull(pdtrSource("CPER_TLFNO_CEL")) Then .CPER_TLFNO_CEL = String.Empty Else .CPER_TLFNO_CEL = pdtrSource("CPER_TLFNO_CEL")
            If pdtrSource.Table.Columns.Contains("CPER_EMAIL_01") Then If IsDBNull(pdtrSource("CPER_EMAIL_01")) Then .CPER_EMAIL_01 = String.Empty Else .CPER_EMAIL_01 = pdtrSource("CPER_EMAIL_01")
            If pdtrSource.Table.Columns.Contains("CPER_EMAIL_02") Then If IsDBNull(pdtrSource("CPER_EMAIL_02")) Then .CPER_EMAIL_02 = String.Empty Else .CPER_EMAIL_02 = pdtrSource("CPER_EMAIL_02")
            If pdtrSource.Table.Columns.Contains("CPER_UBIGEO") Then If IsDBNull(pdtrSource("CPER_UBIGEO")) Then .CPER_UBIGEO = String.Empty Else .CPER_UBIGEO = pdtrSource("CPER_UBIGEO")
            If pdtrSource.Table.Columns.Contains("CPER_DIRECCION") Then If IsDBNull(pdtrSource("CPER_DIRECCION")) Then .CPER_DIRECCION = String.Empty Else .CPER_DIRECCION = pdtrSource("CPER_DIRECCION")
            If pdtrSource.Table.Columns.Contains("CREP_ESTADO") Then If IsDBNull(pdtrSource("CREP_ESTADO")) Then .CREP_ESTADO = String.Empty Else .CREP_ESTADO = pdtrSource("CREP_ESTADO")

            'If pdtrSource.Table.Columns.Contains("DAUDI_FEC_INS") Then If IsDBNull(pdtrSource("DAUDI_FEC_INS")) Then .DAUDI_FEC_INS = Date.MinValue Else .DAUDI_FEC_INS = pdtrSource("DAUDI_FEC_INS")
            'If pdtrSource.Table.Columns.Contains("CAUDI_USR_INS") Then If IsDBNull(pdtrSource("CAUDI_USR_INS")) Then .CAUDI_USR_INS = String.Empty Else .CAUDI_USR_INS = pdtrSource("CAUDI_USR_INS")
            'If pdtrSource.Table.Columns.Contains("DAUDI_FEC_UPD") Then If IsDBNull(pdtrSource("DAUDI_FEC_UPD")) Then .DAUDI_FEC_UPD = Date.MinValue Else .DAUDI_FEC_UPD = pdtrSource("DAUDI_FEC_UPD")
            'If pdtrSource.Table.Columns.Contains("CAUDI_USR_UPD") Then If IsDBNull(pdtrSource("CAUDI_USR_UPD")) Then .CAUDI_USR_UPD = String.Empty Else .CAUDI_USR_UPD = pdtrSource("CAUDI_USR_UPD")
            'If pdtrSource.Table.Columns.Contains("CAUDI_EST_REG") Then If IsDBNull(pdtrSource("CAUDI_EST_REG")) Then .CAUDI_EST_REG = String.Empty Else .CAUDI_EST_REG = pdtrSource("CAUDI_EST_REG")

            .NOMBRECOMPLETO = .CPER_NOMBRE + " " + .CPER_APELLIDO


        End With
        Return abeResultado

    End Function

    Public Function ListarTodo(ByVal obj As RepresentanteBE) As RespuestaBE

        Dim lst As New List(Of RepresentanteBE)
        Dim oRespuesta As New RespuestaBE

        Try
            Using cmd As New SqlCommand("COM_SEL_COM_REPRESENTANTE")

                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("P_BUSCAR", SqlDbType.VarChar).Value = obj.NOMBRECOMPLETO

                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)

                    If dr.HasRows Then

                        lst = Utils.CreaLista(Of RepresentanteBE)(lst, dr)

                        oRespuesta.ValorRertono = lst
                        oRespuesta.Respuesta = True

                        Return oRespuesta

                    Else
                        oRespuesta.ValorRertono = lst
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    End If

                End Using

            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = lst
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString

        End Try
        Return oRespuesta

    End Function

End Class
